void client_all_ood(){


    int expectType = 0;

    ClientDevice * cliDevice = new ClientDevice(ctx, type);





    ClientSession * cliSession = new ClientSession(cliDevice);
    
    ClientHello * cliHello = cliSession.createHello(....)
    Api.send(cliHello)
    cliSession.freeHello(cliHello);
    
    HelloRsp * helloRsp = Api.recv();
    cliSession.handleHello(helloRsp); // change type

    Api.free(helloRsp);

    ClientAuth * cliAuth = cliSession.createAuth(???);
    Api.send(cliAuth);
    cliSession.freeAuth(cliAuth);
    
    AuthRsp * authRsp = Api.recv();
    cliSession.handleAuthRsp(authRsp);
    Api.free(authRsp);

    delete cliSession;
    delete cliDevice;
}

void server_all_ood(){
    ServerDevice * serDevice = new ServerDevice();
    Server * server = new Server(serDevice);
    
    ServerSession * serSession = server.createSession();
    
    ClientHello * cliHello = Net.recv();
    HelloRsp * helloRsp = serSession.handleHello(cliHello);
    Net.free(cliHello);

    Net.send(helloRsp);
    serSession.freeHelloRsp(helloRsp);

    ClientAuth * cliAuth = Net.recv();
    AuthRsp * authRsp = serSession.handleAuth(cliAuth);
    Net.free(cliAuth);

    Net.send(authRsp);
    serSession.freeAuthRsp(authRsp);
    
    server.freeSession(serSession); 
}
